#include <iostream>
#include <unistd.h>
#include <stdlib.h>
#include <signal.h>
#include <sys/types.h>
using namespace std;

// volatile 保持内存的可见性 禁止做优化
void func(int sig)
{
    cout << "进程 " << getpid() << " 收到信号 " << sig << endl;
}

int main()
{
    struct sigaction act, oact;
    act.sa_handler = func;  // 自定义处理
    // act.sa_handler = SIG_IGN;  // 忽略 SIG_IGN == 1
    // act.sa_handler = SIG_DFL;  // 默认处理 SIG_DFL == 0
    act.sa_flags = 0;
    sigemptyset(&act.sa_mask);
    sigaction(2, &act, &oact);
    while(true)
    {
        sleep(1);
    }
    return 0;
}